#include "Base.h"
//#include <iostream>
#include <fstream>
#include <assert.h>
#include "Math\MathTypes.h"
#include <vector>
#include <string>
#include "VertexTypes.h"

using namespace std;

class CRenderableVertexs;
class CTexture;
class CGraphicsManager;

class CStaticMesh
{
protected:
	std::vector<CRenderableVertexs*> m_RVs; //uno por cada vertex type
	std::vector<std::vector<CTexture *>> m_Textures;
	std::string m_FileName;
	unsigned int m_NumVertexs, m_NumFaces;

protected:

	uint16 m_GetBytesPerVertex(uint16 _vtxType);

public:
	CStaticMesh();
	~CStaticMesh();
	bool Load (const std::string &FileName);
	bool ReLoad ();
	void Unload();
	void Render (CGraphicsManager *RM) const;
};